Copyright: (C)opyfree 1998 Rob Vonk


Contents

Version 3 of EasyMTU is out! It has support for Windows 95/98, Windows NT 4 and AOL.

It optimizes your TCP/IP settings for your dial-up adapter (MaxMTU, MaxMSS, DefaultTTL, and more). Windows has default settings for TCP/IP that are not optimal for your modem, with packet sizes that result in a slowed-down Internet connection. These settings are stored in the registry and can be modified, only it is difficult to find the right key to modify. EasyMTU searches for the TCP/IP protocol binded to your dial-up adapter and changes only these settings, so other elements of your registry (like your network adapter) are unaltered. It has a simple, automatic calculating option so everybody can use it and try the optimal settings.

Goto Quick start for a fast way to reccommended settings

Read all about the history of EasyMTU

Short Explanation of MaxMTU

Explanation of the Windows 95 page

Explanation of the bindings page

Page for Windows 98 users

Page for Windows NT 4 users

Page for America Online users

Read the frequently asked questions

New is the FindMTU and Benchmark tool in EasyMTU

Read how it works

Here's the program

Here's a benchmark program

Read the frequently asked questions

Help build:3.0.1


Quick start

When starting EasyMTU for the first time and it found a Dial up adapter is asks you if you want to see the recommended settings.

These are the settings you usually want. Press yes and you'll see all the settings appear in the window. If you press save, the settings will be saved.


History

In 1997 I downloaded AXCEL216 Windows 95 tips and read about tweaking MaxMTU for improving Internet download speed. It described how to tweak the registry and included some registry files. The problem with the registry files is that the place of the MaxMTU setting differs on every machine. It depends on modem bindings. So on one day I decided to make a program which traces the bindings and only changes the right registry keys.

I uploaded the program to Windows 95.com and Nonags (the best freeware Internet site) and EasyMTU became very popular. In two weeks it was on the top ten list of ftp.download.com. Over twenty thousand users downloaded it in two weeks.

With the success of EasyMTU for Windows 95, many people asked if there was a version for Windows NT too. So I searched the Internet for the right settings for Windows NT. The Windows NT 3.5x/4.0 TCP/IP stack was designed to self-tune itself in most environments. It means that it changes the settings for MTU, MSS and DefaultRcvWindow on the fly, depending on the route on the Internet. It will start with large settings and changes them to lower if necessary. This seems okay but I think that the routing on the Internet changes so much that it costs too much time to change the settings. That’s why I added Windows NT support in EasyMTU 2.01 beta. A lot of users tested this beta version and they had some good results.

George from AXCEL216 asked me if I could add his AOL MAxMTU fix in EasyMTU. George and a selected group of AOL users tested the first versions of EasyMTU for AOL extensively. After four beta tests, EasyMTU 2.12 was born. Therefore it was the first program that covered the MaxMTU fix for AOL!

Again George pointed me out some new settings for windows 98 (all the settings are explained at his homepage) so I worked on a new version. When I was working on the code I saw a little bug in the version for Windows NT. So I fixed it and thanged the routine a little. Now you can choose the adapter for MaxMTU. Look at the new Windows 98 page or the new Windows NT page.

In version 2.22, there are some minor bugs fixed.


About MaxMTU

Windows 95/98 default has a MaxMTU of 1500. That means that packets of 1500 bytes are sent over the Internet. Most routers on the internet have a MaxMTU of 576. That means your 1500 byte packet is fragmented in 3 packets.

The original packet

The packets after fragmentation.

The grey parts are data.

The blue parts are headers and footers.

The red part of the last block is useless space.

With fragmentation the speed goes down because it generates a lot of useless space. If you set your MaxMTU to 576 there will be less unwanted fragmentation so speed goes up. So the suggested value for MaxMTU is 567.


Settings page
Windows 95 page

Settings

MaxMTU	Enter the MaxMTU value here. Recommended is 576.

Multiplier	the multiplier setting is provided for auto-calculating the MaxMSS and DefaultRcvWindow settings. The value is not stored in the registry but is calculated when one of the settings is changed.

DefaultTTL	Default Time To Live. Well, doesn’t it say it all? Default is it set to 32 Recommended is 64.

Cachesize	Enter cachesize here. Default is zero. Recommended is sixteen.

ComBoostTime	The "COMBoostTime" setting affects the time (in milliseconds) the Operating System processes a COM port interrupt.

Auto calculate	checkbox to toggle between auto calculate and enter own values.

DeviceDesc	the DeviceDesc has the value TCP/IP when the dial-up adapter is found and when there’s a binding to the dial-up adapter.

DefaultRcvWindow	the DefaultRcvWindow must be MaxMSS * multiplier with multiplier between 2 and 8. Recommended is four.

MaxMSS	MaxMSS must be MaxMTU without the 20 bytes header and footer. So type 536 here.


Windows NT users
Windows NT page

This page is only visible for Windows NT users

The Windows NT 3.5x/4.0 TCP/IP stack was designed to self-tune itself in most environments. It means that it changes the settings for MTU, MSS and DefaultRcvWindow on the fly, depending on the route on the internet. It will start with large settings and changes them to lower if nessesary.

This seems okay but I think that the routing on the internet changes so much that it costs too much time to change the settings. That's why I added Windows NT support in EasyMTU

Just disable automatic settings, Modify the settings, press save and you're done.

Settings

Adapter	Choose the adapter where you want to change MaxMTU for.

MaxMTU	Enter the MaxMTU value here. Recommended is 576.

DefaultTTL	Default Time To Live. Well, doesn’t it say it all? Default is it set to 32 Recommended is 128.

DefaultRcvWindow	the DefaultRcvWindow must be MaxMSS * multiplier with multiplier between 2 and 8. Recommended is four.


AOL users

This page is only visible for AOL users

BACKGROUND INFO from http://users.aol.com/axcel216:

The only way for ALL AOL members to connect to the Internet is by using AOL's software, [:-(] which in ALL 32bit releases implements its own built-in version of MTU (Maximum Transmission Unit) setting of 1500. AOL's "mtu" parameter is found under this Registry key: HKEY_LOCAL_MACHINE\SOFTWARE\America Online\AOL\aolsock "mtu"=dword:000005dc" and canNOT be changed when using version 3.0/4.0 or later of AOL 32bit client. It is ALWAYS reset to AOL's default value of 1500 whenever one logs on to AOL, by being "hardwired" into AOLNDI.DLL, a file installed by the AOL 32bit software, and located in both AOL's folder and in Windows 95/98's \System subfolder.

And if the "aolsock" Registry key is present, AOL 32bit software also resets (depending on different Dial-Up Networking system configurations) the MaxMTU values back to 1500 under the TCP/IP NetTrans Registry keys, corresponding to the "AOL Adapter" and "TCP/IP -> AOL Adapter" items, found on the Network Control Panel applet list. But I have found a way around this AOL's limitation. [looks more like a bug to me... :-)]

With the knowledge and information from George, I was able to make this page available to all the AOL users who want to optimize their AOL connection.

It's very simple: press the suggested button and the MaxMTU fix and extra settings are set to the recommended value. Just press save AOL and you're done!

Settings

All settings are explained at: http://members.aol.com/axcel216 (the best place for windows tuneups).


EasyMTU Frequently asked questions
Frequently asked questions

Why is the cachesize setting greyed out?

The cachesize setting is not on all computers present. If it's greyed out you cannot change the setting on your computer.

Is it safe to use?

Yes! EasyMTU doesn't make any changes to the registry until you press the save button. Before saving the settings, you can check the bindings page where the settings are stored. EasyMTU can restore the default settings. Thousands of people are using EasyMTU and I haven't received mail from any of them saying that EasyMTU damaged their registry.

Should I use EasyMTU every time I make a connection?

No. You can always change the settings for TCP/IP manually. EasyMTU just makes it easy to change the right key. The settings are kept in the registry until you restore the default settings with EasyMTU.

Why only for the dial-up adapter?

Some people asked me why EasyMTU only works for the dial-up adapter. Most people who use Windows 95 and browse the Internet using a dial-up adapter for the connection. For example, I have an Ethernet network for sharing files and use a dial-up adapter for connecting to the Internet (X.25). The standard MaxMTU size for X.25 is 576 and for Ethernet 1500. So if I change the MaxMTU for my network adapter, my private network slows down. The general rule for MaxMTU is to change it to 576 when TCP/IP is only used for connecting to the Internet. See Default MTU Size for Different Network Topology for more info.

Why is it free? Doesn't it work?

EasyMTU does exactly work like the programs you have to pay for. There are those people who lead you to you believe they use 'magic' for improving speed. But it's really simple. Everybody (even people like me with a little brain) and some experience using Delphi can write a program like EasyMTU.

I thought lots of people could use this program--that's why I’m giving it away for free. The only difference with commercial programs is that you don't get support from me. But the program is so easy that you don't need support :-)

What makes the difference?

It's Free! I hate small utilities that cost more than an operating system.

You know you're only changing the settings for your dial-up adapter so your registry remains clean.

You can choose the dial-up adapter from a pull-down box so all languages are supported.

It contains an easy-to-use auto calculate option. Just enter MaxMTU and a multiplier and the MaxMSS and DefaultRcwWindow are calculated.


Info page

More info about speeding up Windows can be found at:

George's Windows 95 tips page (w95-11d.zip section registry.txt)

Here's where I got the idea for the program. You can find information about changing the settings manually. George also has more information about speeding up Windows 95. The Windows 95 tips are a must for every Windows 95 user!

http://users.aol.com/axcel216/index.html

Al's winsock tuning faq

A faq where all the settings are explained.

http://www.cerberus-sys.com/~belleisl/mtu_mss_rwin.html

Article Q158474 in Microsoft's Knowledge Base

The document for Windows 95.

http://www.microsoft.com/kb/default.asp

Default MTU Size for Different Network Topology

http://support.microsoft.com/support/kb/articles/Q140/3/75.asp

Modem FAQ

Curt's High Speed Modem Page (28.8/33.6/56 kbps Modem Tips & Tricks) has information about other options than MaxMTU for tweaking the modem.

http://www.teleport.com/~curt/modems.html


Uninstalling EasyMTU

If you want to uninstall EasyMTU, Press the default button and all traces of EasyMTU in the registry will be removed. Then delete the directory where you installed EasyMTU.

That's all you need to do.


The bindings page

The bindings page is provided for two reasons

1.	changing the dial-up adapter (if installed more than one) Some people have more than one dial-up adapter installed in their registry. With the adapters combobox you can choose the dial-up adapter. It also can be used for different languages. The normal string would be Dial-up adapter. In the Netherlands it is called 'Externe toegangs adapter'. It searches for these strings but I don’t know what they’re called in other countries.

2.	see the bindings that EasyMTU found. EasyMTU traces the bindings in the registry so that it only changes the right  settings. You can see which bindings it found so that you can check which settings will be changed.

Keywords on the bindings page

Adapters	these adapters are found in the registry.

Chosen Adapter	this is the adapter EasyMTU wants to change the settings for.

Adapter Bindings	these are the bindings found in the registry.

Chosen Binding	this is the binding that EasyMTU wants to change.

MSTCP driver	this is the driver for the chosen binding.


Windows 98
Windows 98 page

This page is only visible for Windows 98 users

The Windows 98 dial-up networking stack is designed to self tune just like windows NT. It is possible to change the MaxMTU to manual and set it to 576. Some people got better results with this settings and some didn't. You have to find out yourself.

Settings

IPMTU	MaxMTU for dial-up connections. Recommended is Small, MaxMTU = 576

DefaultRcvWindow	the DefaultRcvWindow must be MaxMSS * multiplier with multiplier between 2 and 8. Recommended is four.

DefaultTTL	Default Time To Live. Well, doesn’t it say it all? Default is it set to 32 Recommended is 64.

Cachesize	Enter cachesize here. Default is zero. Recommended is sixteen.

ComBoostTime	The "COMBoostTime" setting affects the time (in milliseconds) the Operating System processes a COM port interrupt.

Slownet	Use parameters for dial-up connections. Recommended is not to use it (unchecked).


FindMTU

People asked me if there is a way for detecting the best MaxMTU value for their connection. I can answer this with a full yes. It's very simple. Windows 95/98 installs ping.exe. Ping sends a packet to a host and times how fast it comes back. But that's not all. It can also check if the packet must be fragmented because of a low MaxMTU.

Here's how it works:

Start Ping.exe from a dos window with the following command line: ping www.hatchoo.com -f -l 1500

It sends a packet of 1500 bytes (-l 1500) to www.hatchoo.com and it checks if it gets fragmented on the route (-f).

If it gets fragmented, lower the packet size and try again. Repeat this until you find the highest packet that doesn't get fragmented. That's your best MaxMTU (in theory).

But hey Rob, that's a lot of work! Can you write a program that does this for me?

Okay but I want to make a nice program, so I won't use the ping.exe wich runs in a dos box (Other ugly programs use this. Rename ping.exe to dosping.exe and try the option again)

After a couple of hours, here's the result:


FindMTU program
FindMTU

It's simple to work:.

Make sure the MaxMTU value is reset to the default (use EasyMTU for this). This is necessary or it will only give the MaxMTU value back which] is bound to your dial-up adapter. After changing the MaxMTU you should reset your computer.

Fire up your dial-up connection

Press the start button

Watch the program when it finds the best setting. It will give the message 'found!' with a value.

Set the MaxMTU in the registry with EasyMTU.

You can check the result with ping.exe as described here.

You can also type your favorite site in the combobox. I just included www.netscape.com for an example.

If you receive a timeout error, The site can't be found or the packet is lost in space :-). You can try it again or try another site.


Benchmark

It's simple to work:

Fire up your dial-up connection

Press the start button

Watch the program find the throughput for different packet sizes.


FindMTU Frequently asked questions
Frequently asked questions

Why should I set the MaxMTU to the default?

If you ping with a larger packet than the MaxMTU, the packet will always be fragmented. So you won't get reiliable results.

Why does FindMTU find a packet size 28 bytes smaller than MaxMTU?

FindMTU searches for the largest data packet it can send without fragmenting. This is without the the ping header (28 bytes). For the nerds: (Type: 1 byte, code: 1 byte, checksum: 2 bytes, identifier: 2 bytes, sequence no: 2 bytes, original header: 12 bytes and 8 bytes not used). PING.EXE does the same.

FindMTU now gives you both the results (with and without the 28 bytes).

FindMTU finds a MaxMTU of 1500. Is this good?

Some servers doesn't hnour the don'f fragment bit so they will fragment the packet. FindMTU gives back 1472+28=1500. The best thing to do is to try the benchmark with different settings for MaxMTU.

What does all these messages mean? Are these errors?

These messages show you how FindMTU works. You should only be interested in the last message. This could be found! or timeout.

FindMTU gives a timeout when it can't ping the host in the combobox. You should try another host.

FindMTU doesn't work at all!

The ping protocol can't be used when behind a firewall or proxy server. So check if you're behind one.


The Author

Hai. I'm Rob Vonk, 27 years old, and I live in Rijswijk, the Netherlands.
I wrote EasyMTU because I was bored and I found out how to change the registry settings for speeding up my dial-up connection. At that time there was a program that could change the registry settings but you had to pay for it. I hate to pay for small utilities so I wrote the program myself.
I used Borland Delphi for writing. Writing programs in Delphi is not difficult. And now my knowledge from pascal is at hand. I used to make programs with Turbo Pascal on my XT 4.77 Mhz.

How to contact the autor

I'd like to hear from you. Please mail your tips, comments etc. to rob.vonk@cmg.nl

The latest version

The latest version is always availible at:

http://members.tripod.com/~EasyMTU/